Error detection and error correction are commonly used to provide reliable data communications. A technique called forward error correction (FEC) features the addition to the data stream of information that is decoded upon reception. Numerous FEC coding techniques exist and are in wide use today. Some methods include block or algebraic codes and convolutional codes. Gallager introduced a class of codes known as Low Density Parity Check (LDPC) codes, which can be applied to bits or sets of bits (packets), and Elias introduced product codes in 1954. Tanner in 1981 and Lin and Costello in 1983 described the concept of a “turbo product code” (TPC), the iterative decoding of product codes. In turbo product decoding, the reliability information and the tentative bit decisions are updated in an iterative fashion ultimately leading to an improved decoding capability.
FEC techniques may be differentiated in terms of their “power” (ability to correct errors) and their “rate” (defined as the number of information bits encoded divided by the total number of bits transmitted). A high rate, close to one, implies very little supplementary information or “overhead.” Conversely, a low rate implies that the FEC code introduces many bits of supplementary information for every bit of user information. A high-rate code with high power is desirable, since such a code can correct many errors while consuming a relatively small fraction of the communications resource.
A communications channel may comprise either a single path between a transmitter and receiver or multiple paths (a diversity system). The multiple paths can be created by a single transmitter sending data to multiple receiving antennas and receivers, or by a single transmitter sending the same data multiple times. Other diversity techniques exist (e.g., frequency, code, angle, polarization). Each diversity path is subject to noise and other forms of degradation, so all copies of a message received by a receiving system may be corrupted in some way. However, typically the noise statistics and other forms of signal degradation are un-correlated to a certain degree across the various diversity paths, so that a single bit or message may be corrupted on one path, but uncorrupted (or relatively uncorrupted) on another path.
The receiving equipment typically selects one of the outputs of the diversity communications channel, or combines the multiple copies in some fashion, as a prelude to further processing and decoding. A significant body of work exists with regard to optimum diversity combining techniques. Some of the complexities of the decoding process are due to the fact that none of the received data can be assumed to be 100% correct. This process of combining and correcting multiple copies of received data in an iterative manner is also resource intensive and time consuming. Therefore, although diversity transmission and reception using FEC coding is somewhat successful, a simple, reliable and more efficient method of decoding is still sought.